MySQL GROUP BY 和 COUNT 多列
全部标签 很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我正在为一个大约有十亿行的表规划表结构和编程。我经常想做一个SELECTCOUNT(*)ONmytableWHEREsomecol="5"。somecol将有一个索引,它是一个INT。选项1是我只有一个巨大的表并使用SELECTCOUNT(*)如上所述。选项2或者我可以有一个额外的表,称为mytableofcounts,其中我只有两列:somecol和num并且在我记录了somecol的总计数。该
我遇到了一个奇怪的问题,这是我以前从未遇到过的。我有一个类似下面的mysql查询SELECTCOUNT(*)AStotal_countFROMpostcodesWHEREprefix='M1';我的查询匹配一行,所以我期望total_count的值为1。但是它返回-1。有谁知道为什么if会返回负值? 最佳答案 根据this错误报告,您需要运行REPAIRTABLE。 关于mysql-count(*)返回负值,我们在StackOverflow上找到一个类似的问题:
我有一个包含超过30K行和多列的表格。例子:id|year|make|model|color1|2001|gm|truck|red2|2004|gm|truck|green3|2001|nissan|Max|yellow4|2001|gm|truck|blue5|2002|gm|truck|green6|2001|nissan|Sentra|green由于每个品牌型号和年份都有很多颜色,我需要找出每辆车有多少种颜色。期望的结果:2001NissanMax5colors2001GMTruck10colors无需知道什么颜色,只需知道多少颜色。我尝试了以下方法:SELECTCOUNT(DI
我正在寻找一个mysql解决方案,让多个列从该列输出一个随机字段。我现在的查询只随机选择整行,但不会随机选择分隔的列。$sql="SELECTcol1,col2,col3,col4FROMtableORDERBYRAND()limit4";我试过子查询,但我不熟悉,所以如果有人能帮忙...... 最佳答案 试试这个:SELECTCASErndWHEN1THENcol1WHEN2THENcol2WHEN3THENcol3WHEN4THENcol4ENDAScolFROM(SELECTcol1,col2,col3,col4,FLOOR(
User表结构。+------+-------+|id|data|+------+-------+|1|a|+------+-------+|1|b|+------+-------+|2|c|+------+-------+期望的结果。+------+-------+|id|count|+------+-------+|1|2|+------+-------+|2|1|+------+-------+我以多种方式尝试了DISTINCT和COUNT,但仍然没有得到想要的结果。我在做什么$this->User->find('all',array('conditions'=>array(),
我有一个表格,其中包含名为“姓名”、“城市”和“职业”的三个填充列。我想在同一个表中创建一个新列,其中包含具有相同职业的人数。"Name"|"City"|"Occupation"------------------------------Amy|Berlin|PlumberBob|Berlin|PlumberCarol|Berlin|LawyerDavid|London|Plumber我想要一个包含以下内容的表格:"Name"|"City"|"Occupation"|"Number"---------------------------------------Amy|Berlin|Pl
我有2个表:成员,订单。Members:MemberID,DateCreatedOrders:OrderID,DateCreated,MemberID我想找出给定月份中新成员的数量,分割为订单组的数量,例如。5+,4,3,2,1,0我有一个查询来计算成员的订单数量,但如何在一个查询中获得这些值?SELECTCOUNT(o.orderid)ASPurchasesFROMmembersmLEFTJOINordersoONo.memberid=m.memberidANDMONTH(o.DateCreated)=8WHEREMONTH(m.DateCreated)=8GROUPBYm.memb
在一个小时的大部分时间里一直在寻找这个问题的答案,但运气不佳。我有两个具有相同列名的区域表,我可以根据以下查询(将Table2换成Table1)为任一表列出结果列表:SELECTTable1.YEAR,FORMAT(COUNT(Table1.id),0)ASTotalFROMTable1WHERETable1.variable='Y'GROUPBYTable1.YEAR理想情况下,我希望得到一个按年计算总计数的结果,而不是:|REGION1||REGION2||YEAR|Total||YEAR|Total||2010|5||2010|1||2009|2||2009|3|||||2008
这周我已经在计算铭文了。但我需要计算过去12周内每周的铭文,并将其发送到一个数组中。我的实际要求是:SELECTCOUNT(*)FROMPERSONYEAR(date_inscription)=YEAR(NOW())ANDWEEK(date_inscription)=WEEK(NOW()) 最佳答案 SELECTYEARWEEK(date_inscription)asyweek,COUNT(*)ascntFROMPERSONwhereYEARWEEK(date_inscription)>=YEARWEEK(curdate())-12
我有一个MySQL表如下:+----+-------+-------+-------+-------+-------+|ID|MON|TUE|WED|THU|FRI|+----+-------+-------+-------+-------+-------+|0|Bike|Bike|Walk|Bike|Car||1|Car|Car|Car|Bus|Car||2|Bus|Train|Bus|Bus|Train||3|Car|Car|Car|Walk|Car|+----+-------+-------+-------+-------+-------+我将如何分组并计算所有天数,以获得一周内